package com.essential.bases;

/*
##整数取整
    整数的数值表示不但是精确的，而且整数运算永远是精确的，即使是除法也是精确的，因为两个整数相除只能得到结果的整数部分：
    求余运算使用%
##溢出
    整数由于存在范围限制，如果计算结果超出了范围，就会产生溢出，而溢出不会出错，却会得到一个奇怪的结果
    解决上面的问题，可以把int换成long类型，由于long可表示的整型范围更大，所以结果就不会溢出

##小结
    整数运算的结果永远是精确的；
    运算结果会自动提升；
    可以强制转型，但超出范围的强制转型会得到错误的结果；
    应该选择合适范围的整型（int或long），没有必要为了节省内存而使用byte和short进行整数运算。
 */
public class IntegerType {

    public static void main(String[] args) {
        //四则运算
        int i = (100 + 200) * (99 - 88); // 3300
        int n = 7 * (5 + (i - 9)); // 23072
        System.out.println(i);
        System.out.println(n);

        //整数运算 取整
        int x = 12345 / 67; // 184
        //求余运算使用%
        int y = 12345 % 67; // 12345÷67的余数是17

        //计算溢出
        int a = 2147483640;
        int b = 15;
        int sum = a + b;
        System.out.println(sum); // -2147483641
    }
}
